/**
 * 
 */
package com.shine.icis.blo;

import java.util.List;

import com.shine.icis.dto.PfxBackInfo;
import com.shine.icis.dto.ProgressStatus;
import com.shine.icis.exception.ICISException;
import com.shine.icis.hbean.SubmitLog;

/**
 * @author zsy
 *
 */
public interface IDataSubmitService {
	
	/**
	 * 调用存储过程，初始化13张表与核对
	 * 从ETLContextVar里取业务时间、是否增量
	 */
//	public void txCallProcs(boolean genData) throws ICISException;
	
	/**
	 * 调用核对存储过程
	 * @param checkName 核对名称如：R08
	 * @throws ICISException
	 */
	public void txCallCheckProc(String checkName, String checkDate) throws ICISException;

	/**
	 * 生成报送文件
	 * 从ETLContextVar里取业务时间、是否增量、是否重报
	 * @param userCode
	 * @return
	 * @throws ICISException
	 */
	public SubmitLog txGeneratedFiles(String userCode, Boolean resubmitted, Boolean increVersion, Boolean copyTr12) throws Exception;
	/**
	 * 发送报送文件
	 * @param userCode
	 * @return
	 * @throws ICISException
	 */
	public SubmitLog txSendFiles(String userCode) throws Exception;
	/**
	 * 取得pfx目录下的文件信息
	 * @return
	 * @throws ICISException
	 */
	public List<String> getPfxFileList(String pfxDir) throws Exception;
	/**
	 * 取得pfx已发送文件信息
	 * @return
	 * @throws ICISException
	 */
	public List<PfxBackInfo> getPfxBackInfo() throws Exception;
	/**
	 * 当前内部版本号
	 * @return
	 */
	public String getCurrentVersion();
	
	/**
	 * 取得当前的业务时间
	 * @return
	 */
	public String getBusiDate();
	
	/**
	 * 获取采集，生成数据，核对，生成文件步骤的当前状态
	 * @return -2未就绪；-1等待；0运行中；1结束；2结束但TS处于运行中
	 */
	public ProgressStatus getProgressStatus();
	
	/**
	 * 取得最后报送日志
	 * @return
	 */
	public SubmitLog getLastSubmitLog();
	
	
	/**
	 * 压缩生成的报送文件
	 * @return
	 * @throws ICISException
	 */
	public String csCompressSubmitFiles() throws ICISException;
}
